package com.xyht.sca_s.student_manage_system.modules.examinePaymentEquipment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentEquipment.entity.SmsPaymentExamineEquipmentProcurement;
import com.xyht.sca_s.student_manage_system.modules.examinePaymentEquipment.entity.req.*;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 * 付款审批表（设备采购） 服务类
 * </p>
 *
 * @author XYHT
 * @since 2023-05-04
 */
public interface SmsPaymentExamineEquipmentProcurementService extends IService<SmsPaymentExamineEquipmentProcurement> {
        ResponseResult addPaymentExamine(SmsPaymentExamineEquipmentProcurementReq req, String user_id);

        ResponseResult cancelPaymentExamine(SmsPaymentExamineCancelReq smsPaymentExamineCancelReq, String user_id);

        ResponseResult getPaymentExamineList(String user_id,
                                            Integer examine_type,
                                            String search_str,
                                            Integer pageNum,
                                            Integer pageSize);

        ResponseResult getPaymentExamineDetail(String examine_id,String user_id);

        ResponseResult allowPaymentExamine(SmsPaymentExamineAllowReq smsPaymentExamineAllowReq, String user_id);

        ResponseResult getPaymentExamineOriginSettingProcess();

        Future<ResponseResult> tableDownload(String examine_id, HttpServletResponse response);

        ResponseResult getExamineHistoryList(String real_name,String examine_id,String contract_name,String contract_num,
                                             Integer pageNum,
                                             Integer pageSize,
                                             Integer status);

        Future<ResponseResult> exportExamineHistoryList(SmsPaymentExamineEquipmentProcurementHistoryReq req, HttpServletResponse response);

        ResponseResult forcedFinishPayment(String applyId,String userId);

        ResponseResult forcedTorsionPayment(SmsPaymentExamineEquipmentDetailTorsionReq torsionVO);

        ResponseResult replaceApplyTorsionPayment(String userId, SmsPaymentExamineAllowReq allowVO);

        ResponseResult forcedRejectPayment(SmsPaymentExamineEquipmentForcedReq forcedReq, String userId);
}
